Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


The NomadNet German Wikipedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

ÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻ

Geneva (Software)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Geneva (Akronym fĂŒr Grid-enabled evolutionary algorithms) ist eine in C++ implementierte Programmbibliothek, die miteinander kombinierbare Algorithmen zur nĂ€herungsweisen, computergestĂŒtzten Lösung von Optimierungsproblemen bereitstellt. Jenseits der namensgebenden evolutionĂ€ren Algorithmen werden weitere Optimierungsalgorithmen unterstĂŒtzt. Ein fĂŒr Geneva aufbereitetes Optimierungsproblem umfasst die Definition der n {\displaystyle n} Eingabeparameter einschließlich ihrer Typen sowie eine Abbildungsvorschrift P n → → R m {\displaystyle \mathbb {P} ^{n}\rightarrow \mathbb {R} ^{m}} , mit der diesen Parametern ein oder mehrere numerische QualitĂ€tsmaßstĂ€be eindeutig zugeordnet werden. ParametersĂ€tze können dabei neben Gleitkommazahl- auch Boolean- und Integer-Werte umfassen, wobei Parametertypen in der Problembeschreibung auch gemischt werden dĂŒrfen. Optimierung bedeutet dann die Suche nach Maxima oder Minima einer als Programmcode oder externes Programm vorgegebenen Bewertungsfunktion (Einkriterienoptimierung, m = 1 {\displaystyle m=1} ) als Funktion der Eingabeparameter, oder die Suche nach einer Gruppe an zufriedenstellenden Lösungen im Falle der Mehrkriterienoptimierung ( m > 1 {\displaystyle m>1} ). Die Geneva-Bibliothek ist unter der Apache-Lizenz v2.0 als Open-Source-Software verfĂŒgbar.cite-ref-launchpadgeneva-1-0[1]

Contents

‱ Monitoring
‱ Beispiele
‱ Historie

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Einsatzfelder

Geneva ist besonders fĂŒr Optimierungsprobleme ausgelegt, die von einer AusfĂŒhrung in verteilten und parallelen Rechnerumgebungen profitieren. Herausforderungen fĂŒr den Rechenaufwand sind einerseits eine besonders „verrauschte“ QualitĂ€tsoberflĂ€che (HĂ€ufigkeit lokaler Maxima und lokaler Minima) und andererseits der Rechenaufwand, um einzelne Kandidatenlösungen zu bewerten. Eine Kandidatenlösung ist ein vom Optimierungsalgorithmus an die Bewertungsfunktion ĂŒbergebener Parametersatz. Inhaltliche EinschrĂ€nkungen bzgl. der von der Bewertungsfunktion modellierten Problemstellung existieren nicht, jedoch muss sie sich auf die von Geneva unterstĂŒtzten Datentypen beschrĂ€nken und die eingangs geforderte, eindeutige Abbildung implementieren. Ein im Design von Geneva vorgesehenes Einsatzszenario ist die Bewertung von Kandidatenlösungen durch (auch rechenintensive) Simulationen. In C++ implementierte einfache mathematische Funktionen sind jedoch genauso möglich und werden fĂŒr das Benchmarking von Geneva verwendet. EinschrĂ€nkungen hinsichtlich der Implementierung der Bewertungsfunktion können sich jedoch aus der parallelen AusfĂŒhrung im Geneva-Kontext ergeben.

FunktionalitÀt

Implementierte Algorithmen

Geneva unterstĂŒtzt neben EvolutionĂ€ren Algorithmen (ohne ausschließliche Festlegung auf Floating Point oder Boolean-Parameter) verschiedene andere metaheuristische Optimierungsverfahren.cite-ref-genevamanual-2-0[2]cite-ref-hadooptimizersccnews-3-0[3] Dies sind aktuell

‱ Schwarmalgorithmen
‱ Simulierte AbkĂŒhlung (erweitert um die Möglichkeit mehrerer gleichzeitiger Bewertungen)
‱ Einfache Gradientenabstiege (nicht Conjugate Gradient). Hierbei wird in jedem Schritt der Gradient auf der Basis des Differenzenquotienten ermittelt und so nĂ€herungsweise die Richtung des steilsten Abfalls der QualitĂ€tsoberflĂ€che bestimmt

ZusĂ€tzlich werden Parameter Scans unterstĂŒtzt, entweder auf einem regelmĂ€ĂŸigen Gitter oder mit Hilfe von ĂŒber den gesamten Parameterraum gleichverteilten, zufĂ€lligen Kandidatenlösungen. Ein Scan der „Noisy Parabola“ f ( x 1 , x 2 , 
 
 , x n ) = ( c o s ( ∑ ∑ i = 1 n x i 2 ) + 2 ) ∗ ∗ ∑ ∑ i = 1 n x i 2 {\displaystyle f\left(x_{1},x_{2},\ldots ,x_{n}\right)=\left(cos\left(\sum _{i=1}^{n}x_{i}^{2}\right)+2\right)*\sum _{i=1}^{n}x_{i}^{2}} (einer in Geneva fĂŒr Testzwecke verwendeten Funktion mit einer sehr hohen Zahl lokaler Optima) auf einem Gitter ist beispielhaft auf der rechten Seite zu sehen. Dem Scan in Rot ĂŒberlagert ist eine Optimierung mit Hilfe einer Evolutionsstrategie unter Verwendung von Geneva. Nur einen Teil des Parameterraums unterzieht der evolutionĂ€re Algorithmus der Bewertungsfunktion. Da die Menge zu scannender Raumpunkte exponentiell mit der Zahl der Parameter steigt, stellt die parametrische Optimierung fĂŒr viele hochdimensionale Problemstellungen den einzig gangbaren Weg zur Lösung dar. Die Geneva-Bibliothek kann hierbei auch mit Problemen mit sehr hohen Zahlen an Parameterncite-ref-mmichelpwa-4-0[4] umgehen (vgl. hierzu auch Film 1).

Kopplung von Algorithmen

Optimierungsalgorithmen können miteinander gekoppelt werdencite-ref-genevamanual-2-1[2], wobei die besten Lösungen des VorgÀngeralgorithmus zum Startwert des folgenden Algorithmus werden. Ein Nutzungsbeispiel ist die Suche nach geeigneten Startpunkten der Optimierung mit Hilfe eines groben Parameterscans, gefolgt von einer Evolutionsstrategie. Der Austausch der besten Kandidatenlösungen zwischen verschiedenen Algorithmen erlaubt grundsÀtzlich auch die Unterteilung des Optimierungslaufs in Grob- und Fein-Optimierung mit unterschiedlichen Algorithmen.

Behandlung von Randbedingungen

Randbedingungen können den gĂŒltigen Teil des Parameterraums stark einschrĂ€nken. Optimierungsalgorithmen mĂŒssen solche Bereiche so weit wie möglich vermeiden, einerseits um schneller ein gĂŒltiges Optimum zu erreichen und andererseits, um potentiell fehlerhafte RĂŒckgabewerte der Bewertungsfunktion fĂŒr ungĂŒltige Parameterwerte zu umgehen. Die Geneva Bibliothek unterstĂŒtzt einerseits die BeschrĂ€nkung des Wertebereichs einzelner Parameter. Ferner besteht die Möglichkeit, AbhĂ€ngigkeiten der Randbedingungen einzelner Parameter von den Werten anderer Variablen durch eine RĂŒckfĂŒhrung auf eine gemeinsame QualitĂ€tsoberflĂ€che fĂŒr ungĂŒltige und gĂŒltige Lösungen zu behandeln. Ein Beispiel fĂŒr eine solche Problemstellung wĂ€ren zwei Parameter x und y, deren Summe einen gegebenen, konstanten Bereich nicht ĂŒberschreiten darf. Zwar kann in diesem Beispiel grundsĂ€tzlich jede Variable variiert werden. GĂŒltige Parameterwerte hĂ€ngen aber vom aktuellen Wert der jeweils anderen Variable ab.

Das hierbei von Geneva eingesetzte Verfahrencite-ref-genevamanual-2-2[2] bewertet zunĂ€chst die GĂŒltigkeit eines Parametersatzes. GĂŒltige Lösungen werden mit Hilfe einer Sigmoid-Funktion transformiert, so dass die Bewertung gĂŒltiger ParametersĂ€tze eine obere und untere Grenze nicht ĂŒber- respektive unterschreiten kann. Kann der Nutzer nun fĂŒr jede verletzte Randbedingung numerisch angeben, wie schwerwiegend deren Verletzung ist, so berechnet Geneva eine Ersatzbewertung (Invalidity), die an die Stelle des Aufrufs der Bewertungsfunktion tritt. Dies geschieht z. B., in dem das Produkt aller Invalidities mit der oberen (bei Minimierung) oder unteren (bei Maximierung) Grenze der Sigmoidfunktion multipliziert wird. Die so entstehende Ersatz-QualitĂ€tsoberflĂ€che fĂ€llt in Richtung gĂŒltiger Wertebereiche ab. Die durch den Optimierungsalgorithmus gefundenen Lösungen werden so in die Richtung gĂŒltiger Werte „gezogen“.

Monitoring

Aktuelle Parameter der Optimierungsalgorithmen sowie der Kandidatenlösungen können wĂ€hrend der laufenden Optimierung extrahiert und in Form eines Eingabescripts fĂŒr das Datenanalysepaket ROOT ausgegeben werden.cite-ref-genevamanual-2-3[2] ROOT sorgt dann fĂŒr die Konvertierung in gewĂŒnschte Bildformate, etwa PNG oder PDF. Ferner ist mit diesem Werkzeug eine Nachbearbeitung (z. B. durch Anmerkungen) außerhalb von Geneva möglich. Daten können entweder mit Algorithmen-spezifischen, vordefinierten Optimierungsmonitoren gesammelt werden, oder mit Hilfe von leichtgewichtigeren, meist Benutzer-definierten Pluggable Optimization Monitors. Abbildung 1 wurde auf diese Weise erzeugt, wobei eine Nachbearbeitung stattgefunden hat.

Parallelisierung und GrĂ¶ĂŸe der unterstĂŒtzten Problemstellungen

Metaheuristische Optimierungsalgorithmen verlaufen in Zyklen, wobei aufeinanderfolgende Iterationen auf den Ergebnissen der VorgĂ€ngeriteration aufbauen. Meist erfolgen pro Iteration mehrere Bewertungen, und viele Optimierungsalgorithmen benötigen bei einer Erhöhung der Zahl an Kandidatenlösungen bei gleicher ProblemgrĂ¶ĂŸe weniger Iterationen bis zu einer zufriedenstellenden Lösung. Die Optimierung von Problemstellungen mit komplexen QualitĂ€tsoberflĂ€chen profitiert umgekehrt von zusĂ€tzlichen Optimierungszyklen und – insofern vom gewĂ€hlten Optimierungsalgorithmus unterstĂŒtzt – pro Iteration der Bewertung einer möglichst großen Anzahl an Kandidatenlösungen.

Die sinnvolle Menge an Iterationen und an Kandidatenlösungen pro Iteration wird insbesondere durch die verfĂŒgbare Rechenzeit beschrĂ€nkt. Durch eine Parallelisierung auf der Ebene der Bewertung von Kandidatenlösungen kann eine Beschleunigung der Optimierungsrechnung erreicht werden. Hierbei ist hilfreich, dass die Einzelbewertungen unterschiedlicher Kandidatenlösungen im Regelfall unabhĂ€ngig voneinander sind. FĂŒr große Populationen an Kandidatenlösungen nĂ€hert sich die parametrische Optimierung hinsichtlich der Parallelisiertbarkeit insofern "trivial parallelen" Problemstellungen an.

Der fĂŒr die Optimierung benötigte Bewertungsschritt kann in Geneva parallel in mehreren Threads oder verteilt in Clustern, Grid oder Cloud erfolgencite-ref-isgc09geneva-5-0[5]. Hierbei wird außer der lokalen Berechenbarkeit fĂŒr gegebene ParametersĂ€tze keine inhaltliche Voraussetzung ĂŒber die verwendeten Bewertungsfunktionen gemacht. Jedoch entstehen durch die gewĂ€hlte Art der Parallelisierung Anforderungen an die Implementation der Bewertungsfunktion. Bei der AusfĂŒhrung im Netzwerk ist zudem zu beachten, dass auf Grund der durch das Amdahl'sche Gesetz beschriebenen EinschrĂ€nkungen sehr kurze Bewertungsfunktionen zu einer schlechten Skalierbarkeit fĂŒhren.

Metaoptimierung

Es existiert die Möglichkeit, Konfigurationsparameter von Optimierungsalgorithmen (aktuell in Geneva implementiert nur fĂŒr EvolutionĂ€ren Algorithmen) direkt zu optimieren, nach Nutzerwahl entweder zwecks Minimierung der Zahl der Aufrufe der Bewertungsfunktion bis zum Erreichen einer vorgegebenen QualitĂ€t, oder zur effizienteren Suche nach möglichst guten Optima. Das Verfahren ist durch die Notwendigkeit vieler OptimierungslĂ€ufe sehr rechenintensiv und eignet sich nicht fĂŒr rechenaufwĂ€ndige Bewertungsfunktionencite-ref-genevamanual-2-4[2]. Es kann jedoch dazu genutzt werden, anhand schnell zu berechnender mathematischer Funktionen geeignete Konfigurationsparameter auch fĂŒr sehr verrauschte QualitĂ€tsoberflĂ€chen zu bestimmen. Ferner werden durch die Möglichkeit, Optimierungsalgorithmen in Individuen zu kapseln, Multipopulationen unterstĂŒtzt – sie erlauben es, Optimierungsalgorithmen zum Gegenstand der Optimierung zu machen.

Architektur und Design

Geneva ist ein im C++14-Standard implementiertes Toolkit. UnterstĂŒtzt werden in der Produktionsversion aktuell nur die gcc- und Clang-Compiler. Geneva verwendet an vielen Stellen Komponenten der Boost-Bibliothekssammlung. Andere externe Bibliotheken werden nur fĂŒr konkrete Einsatzzwecke verwendet, so etwa passende OpenCL-Implementierungen fĂŒr ein optionals GPGPU-Backend. Neben der eigentlichen, in der namensgebenden libgeneva-Bibliothek implementierten OptimierungsfunktionalitĂ€t existieren zwei weitere zentrale Komponenten in Geneva:

Brokering und Netzwerkkommunikation

Alle fĂŒr die Netzwerkkommunikation und allgemeiner die Verteilung von RechenauftrĂ€gen benötigte FunktionalitĂ€t ist in der libcourtier implementiert.

Die aktuell auf der Boost ASIO-Bibliothek sowie der Boost Beast-Bibliothek basierende Netzwerkkommunikation implementiert eine einfache Client-Server-Architektur. Sie setzt auf Seiten der Clients lediglich die Erreichbarkeit des Servers voraus. Netzwerkverbindungen werden im Fall von ASIO fĂŒr jeden Transfer von ParametersĂ€tzen oder Bewertungsergebnissen neu geöffnet und nach dem erfolgreichen Transfer der Daten wieder geschlossen. Durch dieses Design muss auf Bibliotheksseite keine Information ĂŒber die Dauer der Bewertungsfunktion existieren – diese können ggf. auch ĂŒber viele Stunden aktiv sein. Die AusfĂŒhrung im Netzwerk stellt je nach Bewertungsfunktion auf Grund einer hohen Frequenz an Client-Server Verbindungen jedoch Ă€hnliche Anforderungen an den Server wie ein Webserver, erfordert also ggf. eine auf Geneva angepasste Konfiguration. Die auf Boost Beast basierende Implementierung verwendet im Vergleich Websockets, so dass Verbindungen ĂŒber lĂ€ngere Zeit aufrechterhalten werden. Die fĂŒr die Netzwerkkommunikation notwendige Serialisierung von Objekten ist ĂŒber die Boost.Serialization Bibliothek implementiert.

RechenauftrĂ€ge können durch mehrere Erzeuger an einen Broker ĂŒbergeben werden, der ĂŒber Plugins fĂŒr die Verteilung an Interessenten sowie die RĂŒckĂŒbergabe fertiger RechenauftrĂ€ge an die Erzeuger sorgt. Neben der Netzwerkkommunikation sind andere Konsumenten möglich. So wurden die Einzelschritte hinter Film 1 etwa mit einem GPGPU-Backend auf Basis von OpenCL erzeugt.

Erzeugung von Zufallszahlen

Viele stochastische Optimierungsverfahren, wie etwa EvolutionĂ€re Algorithmen, benötigen fĂŒr eine erfolgreiche Optimierung große Mengen an Zufallszahlen – im Fall EvolutionĂ€rer Algorithmen meist mit einer Normalverteilung. Da die Optimierung jedoch in Zyklen verlĂ€uft, unterliegt die ĂŒber die Zeit benötigte Rechenleistung periodischen Schwankungen. Entsprechend gibt es Zeiten niedriger Auslastung, die fĂŒr die Erzeugung von Zufallszahlen verwendet werden können. Die Geneva Bibliothek nutzt dies im Rahmen einer „Zufallszahlenfabrik“ aus, die im Hintergrund in mehreren Threads Puffer mit im Intervall [ 0 , 1 [ {\displaystyle [0,1[} gleichverteilten Zufallszahlen fĂŒllt (bis zu einer vorgegebenen Grenze). „Proxy-Objekte“ in den Konsumenten können einer Queue der Zufallszahlenfabrik Pakete von Zufallszahlen entnehmen. Diese werden den Konsumenten bei Bedarf einzeln transparent zur VerfĂŒgung gestellt – die Proxy-Objekte sehen fĂŒr diese wie Zufallszahlengeneratoren aus. Hierbei kann bei Bedarf auch die Umrechnung in vom Konsument benötigte Zufallsverteilungen erfolgen. Durch das kontinuierliche FĂŒllen von Puffern mit Zufallszahlen können insbesondere Zeiten niedriger AktivitĂ€t besser genutzt werden. Ferner entfallen Probleme mit dem Setzen der Seeds der Generatoren, die dann auftreten wĂŒrden, wenn jeder der (möglicherweise tausenden von) Konsumenten einen eigenen Generator verwenden wĂŒrde. Diese FunktionalitĂ€t ist in der libhap implementiert.

Beispiele

Film 1 zeigt eine mit der Geneva-Bibliothek durchgefĂŒhrte Optimierung, bei der 150 zufĂ€llige, semi-transparente Dreiecke hinsichtlich ihrer Koordinaten, Farbwerte und Durchsichtigkeit so arrangiert werden mussten, dass sie dem Wikipedia-„W“ möglichst Ă€hnlich sahen. Gezeigt sind jeweils nur die besten Lösungen jeder Iteration. Insgesamt bedeutet dies eine Anpassung von 1500 Parametern im Wertebereich [0:1]. Das Bewertungskriterium umfasste dabei die quadratische Summe der numerischen Abweichungen der FarbkanĂ€le aller Pixel zwischen einem aus den fĂŒr einen gegebenen Parametersatz aus den 150 Dreiecken zusammengesetzten Kandidatenbild und dem Zielbild. Da die Bewertung unterschiedlicher Zielbilder voneinander unabhĂ€ngig ist, profitiert die Optimierung solcher Problemstellungen stark von der gleichzeitigen Nutzung vieler Prozessoren etwa in einem Mehrkernprozessor. Das Beispiel ist auch insofern interessant, als man bei metaheuristischen Optimierungsverfahren im Regelfall bei vielen Parametern keine Aussage darĂŒber machen kann, wie nahe man am globalen Optimum ist. Im vorliegenden Fall reicht hierfĂŒr jedoch trotz der sehr hohen Zahl an Parametern die visuelle Begutachtung. Das Beispiel orientiert sich an einer Idee von Roger Alsingcite-ref-mlrogeralsing-6-0[6] (dort mit der Mona Lisa als Zielbild). Geneva kommt aktuell u. a. in der Teilchenphysikcite-ref-mmichelpwa-4-2[4]cite-ref-harnewmix-7-0[7] (vgl. auch Abbildung 2) sowie in der Automobilindustrie zur Optimierung der Akustik von Abgasanlagencite-ref-atzbb-8-0[8] zum Einsatz.

Historie

VorlĂ€ufer von Geneva wurden 1994 im Rahmen einer Diplomarbeit am Institut fĂŒr Experimentalphysik I der Ruhr-UniversitĂ€t Bochumcite-ref-berlichdiplom-9-0[9] entwickelt und dort fĂŒr das Training von Feedforward Neuronalen Netzwerken zur Erkennung hadronischer Splitoffs am Crystal-Barrel-Experiment des CERN / Genf eingesetzt. Der Code wurde von 2001 bis 2004 im Rahmen einer Doktorarbeit am selben Institut im Hinblick auf die verteilte Optimierung von Analysen der Elementarteilchenphysik weiterentwickeltcite-ref-berlichphd-10-0[10]cite-ref-nim-11-0[11]cite-ref-ixgeneva-12-0[12]. Im Rahmen einer AusgrĂŒndungsförderung am Steinbuch Centre for Computing des Karlsruhe Institute of Technology wurde Geneva komplett ĂŒberarbeitet und an die KIT-AusgrĂŒndung Gemfony scientific UG (haftungsbeschrĂ€nkt) ĂŒbergebencite-ref-genevasccnews-13-0[13]. Geneva wurde in diesem Zusammenhang als Open Source freigegeben. Die Geneva-Bibliothek umfasst in der Version 1.10 rund 130.000 Zeilen Code und befindet sich in aktiver Entwicklung.cite-ref-blackduckgeneva-14-0[14] Geneva wurde in der im MĂ€rz 2020 veröffentlichten Version 1.10 unter die Apache-Lizenz in der Version 2.0 gestellt. Bis zu diesem Zeitpunkt stand sie unter der GNU Affero General Public License in der Version 3.0.

Einzelnachweise

cite-note-launchpadgeneva-11. ↑ Repository der Geneva Bibliothek
cite-note-genevamanual-22. ↑ Manual der Geneva Bibliothek, Version 1.6; R.Berlich, S.Gabriel, A.Garcia: Parametric Optimization with the Geneva Library Collection; engl.
cite-note-hadooptimizersccnews-33. ↑ HadoOptimizer – Lösung komplexer Optimierungsprobleme von Christian Kumpe et al. in SCC News (Publikation des Steinbuch Centre for Computing am Karlsruhe Institute of Technology), Ausgabe 2011/3, S. 24 ff.
cite-note-mmichelpwa-44. ↑ ComPWA: A common amplitude analysis framework for PANDA M Michel et al. 2014 J. Phys.: Conf. Ser. 513 022025
cite-note-isgc09geneva-55. ↑ Distributed Parametric Optimization with the Geneva Library, RĂŒdiger Berlich et al., in Data Driven e-Science; Conference proceedings of ISGC 2010; Springer; Simon C. Lin and Eric Yen (editors); ISBN 978-1-4419-8013-7; S. 303 ff.
cite-note-mlrogeralsing-66. ↑ Modellierung der Mona Lisa mit Dreiecken durch Roger Alsing (Memento des Originals vom 3. Dezember 2014 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemĂ€ĂŸ Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/rogeralsing.com
cite-note-harnewmix-77. ↑ Model independent determination of the CKM phase γ γ {\displaystyle \gamma } using input from D 0 − − D ¯ ¯ 0 {\displaystyle D^{0}-{\bar {D}}^{0}} -mixing, Sam Harnew und Jonas Rademacker, Journal of High Energy Physics, March 2015, 2015:169
cite-note-atzbb-88. ↑ Parametrische Optimierung der Akustik von Abgasanlagen (Memento vom 4. MĂ€rz 2016 im Internet Archive), Dominik Rödel und RĂŒdiger Berlich, 2. Internationaler Motorenkongress 2015, Februar 2015, Baden-Baden
cite-note-berlichdiplom-99. ↑ R.Berlich: Visualisierung hadronischer Splitoffs und ihre Erkennung mit neuronalen Netzen, Diplom-Arbeit, Institut fĂŒr Experimentalphysik I der Ruhr-UniversitĂ€t Bochum, 1995
cite-note-berlichphd-1010. ↑ R.Berlich: Application of Evolutionary Strategies to Automated Parametric Optimization Studies in Physics Research, Doktorarbeit, Institut fĂŒr Experimentalphysik I der Ruhr-UniversitĂ€t Bochum, 2004
cite-note-nim-1111. ↑ R.Berlich, M.Kunze: Parametric optimization with evolutionary strategies in particle physics, Nuclear Instruments and Methods in Physics Research A 534 (2004) 147–151
cite-note-ixgeneva-1212. ↑ Das Beste zum Schluss – Optimierungsalgorithmen auf verteilten Systemen, RĂŒdiger Berlich, iX, Heise Zeitschriftenverlag, Ausgabe 12/2010, S. 110–115.
cite-note-genevasccnews-1313. ↑ "Geneva -- von der Forschung zur wirtschaftlichen Anwendung", RĂŒdiger Berlich in SCC News (Publikation des Steinbuch Centre for Computing am Karlsruhe Institute of Technology), Ausgabe 2009/2, S. 8 ff.
cite-note-blackduckgeneva-1414. ↑ Analyse des Geneva-Codes durch BLACKDUCK / Open Hub